jak dostat hodnoty z TWebModule do promenne

Otázka od: Jirka Virt

8. 4. 2004 18:53

Ahoj,
 mam ISAPI web aplikaci.

Jak dostanu z tagu hodnoty do promennych?

priklad:

webdemo.dll/test?hodnota=12345

jde mi o tu hodnotu 12345, jak ji po odeslani dostat do promennych?

Diky

Jirka


Odpovedá: Peter Ondras

9. 4. 2004 11:34

(*
Tu je ukazka jednej akcie, ktora nacita nejake 3 hodnoty a vypise ich. V
casti "vygenerovanie stranky" v ramci bloku try..except si mozes doplnit
akykolvek kod (nacitanie udajov z databaz, rozne vypocty a pod.). V
tejto casti su pridavanim "HTML.Add('<nejaky_html_zdrojak>');" doplnas
vizualny vystup. Mozes tu volne pouzivat CSS, tabulky, javascript a pod.
Header a footer (napr. cast <html> a </html>, resp. nejaka cela
hlavicka=zakladny dizajn) mozes nacitavat zo suborov, cim si ulahcis v
buducnosti zmenu dizajnu. Ak chces o tom viac info, tak nie je problem
sukromne
*)

procedure TIshopModule.IshopModuleAction1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var HTML: TStringList;
    hodnota, premenna2, premenna3: String;
begin
  //vynulovanie premennych
  hodnota:='';
  premenna1:='';
  premenna2:='';

  //nacitanie premennych
  if Request.MethodType=mtGet then
    begin
      //metoda GET
      hodnota:=Request.QueryFields.Values['hodnota'];
      premenna1:=Request.QueryFields.Values['premenna2'];
      premenna1:=Request.QueryFields.Values['premenna3'];
    end
  else if Request.MethodType=mtPost then
    begin
      //metoda POST
      hodnota:=Request.ContentFields.Values['hodnota'];
      premenna1:=Request.ContentFields.Values['premenna2'];
      premenna2:=Request.ContentFields.Values['premenna3'];
    end;

  //vygenerovanie stranky
  HTML:=TStringList.Create;
  try
    try
      HTML.Clear;
      HTML.Add('<html>');
      HTML.Add('<body>');
      HTML.Add(' <p>Premenna hodnota je: '+hodnota+'</p>');
      HTML.Add('</body>');
      HTML.Add('</html>');
    except
      //chybova stranka (v pripade, ze nastane nejaka chyba)
      HTML.Clear;
      HTML.Add('<html>');
      HTML.Add('<body>');
      HTML.Add(' <h1>Nastala chyba pri generovani stranky!</h1>');
      HTML.Add('</body>');
      HTML.Add('</html>');
    end;
  finally
    //vratenie vysledku do prehliadaca
    Response.Content:=HTML.Text;
    HTML.Free;
  end;
end;


> -----Original Message-----
> Jak dostanu z tagu hodnoty do promennych?
>
> priklad:
>
> webdemo.dll/test?hodnota=12345
>


Odpovedá: Jiri Virt

9. 4. 2004 11:37

prima diky .. uz jsem na to vecer s pomoci bozi a knizkama prisel  

nj .. ale za zadnou cenu nemuzu otevrit tabulku ... pritom jsem to uz nekdy
pred rokem zkousel a vsechno OK... nj ... musim hledat dal... zajimavy, ze
sem nerozebehnul ani ukazkovou aplikaci.pritom v navrhu tabulky normalne
otevru .... je to zahada

Ale preci jenom bych potreboval radu.
jak debugovat isapi? na netu jsem nasel navody ... vsechno mam nastaveno ..
v D pustim RUN , DLL se zavede, pohybuji se po strankach .. ale jaksi mi to
ne a ne zastavit na miste, kde si dam breakpoint. Je na miste , kterym
prochazi, to jen tak pro uplnost .. takze totalne nechapu, proc D nereaguje.

D5 profi WinXP

Jirka